package abordagem.leitores_e_escritores;

import util.ClasseAuxiliar;
import main.Principal;

/**
 * Leitor da abordagem RW. Para mais informacoes sobre a abordagem RW: {@link Principal}
 * 
 * @author Andreia Rodrigues de Oliveira, Raphael Henrique Monteiro, Regis Hideki Hatori;
 *
 */
public class RWLeitor extends Thread {

	private RWLock db;
	private Principal main;

	/**
	 * Construtor da classe RWLeitor
	 * 
	 * @param db banco da abordagem RW
	 * @param main objeto da classe {@link Principal}
	 */
	public RWLeitor(RWLock db, Principal main) {
		
		this.db = db;
		this.main = main;
	}

	@Override
	public void run() {

		try {

			db.acquireReadLock();
			int pos = ClasseAuxiliar.posicaoAleatoriaNoBd();
			main.setPalavra(main.getListaBd().get(pos));
			Thread.sleep(5);
			db.releaseReadLock();

		} catch (InterruptedException e) {

			e.printStackTrace();
		}
	}

}
